<p:config xmlns:p="http://www.orbeon.com/oxf/pipeline" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:oxf="http://www.orbeon.com/oxf/processors" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xxforms="http://orbeon.org/oxf/xml/xforms" xmlns:xdb="http://orbeon.org/oxf/xml/xmldb" xmlns:xu="http://www.xmldb.org/xupdate">

	<p:param name="data" type="input"/>

	<p:processor name="oxf:xslt">
		<p:input name="data" href="#data"/>
		<p:input name="config">
			<xsl:stylesheet version="2.0">
				<xsl:template match="/">
					<document>
						<xsl:apply-templates/>
					</document>
				</xsl:template>
				<xsl:template match="json">
					<xsl:text>[</xsl:text>
					<xsl:apply-templates/>
					<xsl:text>]</xsl:text>
				</xsl:template>
				<xsl:template match="object">
					<xsl:text>{</xsl:text>
					<xsl:apply-templates/>
					<xsl:text>}</xsl:text>
					<xsl:if test="position() != last()">,</xsl:if>
				</xsl:template>
				<xsl:template match="string">
					<xsl:value-of select="."/>
				</xsl:template>
				<xsl:template match="node()">
					<xsl:text>"</xsl:text>
					<xsl:value-of select="node-name(.)"/>
					<xsl:text>":</xsl:text>
					<xsl:choose>
						<xsl:when test=". = 'null'">
							<xsl:text>null</xsl:text>
						</xsl:when>
						<xsl:otherwise>
							<xsl:text>"</xsl:text>
							<xsl:value-of select="."/>
							<xsl:text>"</xsl:text>
						</xsl:otherwise>
					</xsl:choose>
					<xsl:if test="position() != last()">,</xsl:if>
				</xsl:template>
			</xsl:stylesheet>
		</p:input>
		<p:output name="data" id="document"/>
	</p:processor>

	<p:processor name="oxf:text-converter">
		<p:input name="config">
			<config/>
		</p:input>
		<p:input name="data" href="#document"/>
		<p:output name="data" id="text"/>
	</p:processor>
	<p:processor name="oxf:http-serializer">
		<p:input name="config">
			<config>
				<content-type>text/plain</content-type>
				<force-content-type>true</force-content-type>
			</config>
		</p:input>
		<p:input name="data" href="#text"/>
	</p:processor>

</p:config>